home *** CD-ROM | disk | FTP | other *** search
- // Language: HTML
- // This script demonstrates very simple HTML highlighting
- // No Doctype, CSS or JavaScript support
- // Well commented and very easy to understand
- // Comments *must* start at the beginning of the line
-
- // States - these define parser states
- State=snormal
- State=sstring1
- State=sstring2
- State=scomment
- State=stagname
- State=shtmltag
- State=shtmlvalue
-
- // Tokens - these define different coloring styles
- Token=tnone
- Token=turl
- Token=twhitespace
- Token=tstring
- Token=tcomment {HTML Comment}
- Token=tident
- Token=tresword
- Token=tsymbol
- Token=tentity
- Token=tunknown
- // tnone, turl, twhitespace are required tokens
- // {name} allows to assign pretty display name for custom tokens
- // most standard tokens are assigned pretty names automatically
-
- // Delimiters
- Delimiters=;.,:'"{}[]()<>?!@#$%^&*-+=|\/
-
- // The parser generally consists of lines in the following format:
- // CurrentState SomeExpression NewState Token
- // after the Token, optional SaveState or LoadState directive can be used
- // SaveState or LoadState directives allow to remember/activate some previous state
- // you can remember only one state!
- // see example below
- // snormal <? sphp tphpbracket SaveState
- // sstring <? sphp tphpbracket SaveState
- // sphp ?> snormal tphpbracket LoadState
-
- // Common
- snormal < stagname tsymbol
- stagname [a-z_A-Z][a-z_A-Z0-9]* shtmltag tunknown
- shtmltag [^\>^\'^\"^#32^\=]* shtmltag tident
- stagname / stagname tsymbol
- shtmltag / shtmltag tsymbol
- shtmltag = shtmlvalue tsymbol
- shtmlvalue [^\>^#32^\=]* shtmltag tstring
- shtmlvalue > snormal tsymbol
- stagname > snormal tsymbol
- shtmltag > snormal tsymbol
-
- // White space
- snormal #32* snormal twhitespace
- shtmltag #32* shtmltag tsymbol
-
- // Strings
- shtmltag \' sstring1 tstring
- shtmlvalue \' sstring1 tstring
- sstring1 [^\']* sstring1 tstring
- sstring1 \' shtmltag tstring
- sstring1 \'\' sstring1 tstring
- sstring1 \\ sstring1 tstring
-
- shtmlvalue \" sstring2 tstring
- shtmltag \" sstring2 tstring
- sstring2 [^\"]* sstring2 tstring
- sstring2 \" shtmltag tstring
- sstring2 \"\" sstring2 tstring
- sstring2 \\ sstring2 tstring
-
- // Comments
- snormal <\!-- scomment tcomment
- scomment [^\-]* scomment tcomment
- scomment [\-]*[^>] scomment tcomment
- scomment [\-]*> snormal tcomment
-
- // Reswords - tag names
- // lines containing @@@ are special container brackets - do not touch them
- //@@@HTM
- stagname 'a' shtmltag tresword
- stagname 'abbr' shtmltag tresword
- stagname 'acronym' shtmltag tresword
- stagname 'address' shtmltag tresword
- stagname 'applet' shtmltag tresword
- stagname 'area' shtmltag tresword
- stagname 'b' shtmltag tresword
- stagname 'base' shtmltag tresword
- stagname 'basefont' shtmltag tresword
- stagname 'bdo' shtmltag tresword
- stagname 'big' shtmltag tresword
- stagname 'blockquote' shtmltag tresword
- stagname 'body' shtmltag tresword
- stagname 'br' shtmltag tresword
- stagname 'button' shtmltag tresword
- stagname 'caption' shtmltag tresword
- stagname 'center' shtmltag tresword
- stagname 'cite' shtmltag tresword
- stagname 'code' shtmltag tresword
- stagname 'col' shtmltag tresword
- stagname 'colgroup' shtmltag tresword
- stagname 'dd' shtmltag tresword
- stagname 'del' shtmltag tresword
- stagname 'dfn' shtmltag tresword
- stagname 'dir' shtmltag tresword
- stagname 'div' shtmltag tresword
- stagname 'dl' shtmltag tresword
- stagname 'dt' shtmltag tresword
- stagname 'em' shtmltag tresword
- stagname 'fieldset' shtmltag tresword
- stagname 'font' shtmltag tresword
- stagname 'form' shtmltag tresword
- stagname 'frame' shtmltag tresword
- stagname 'frameset' shtmltag tresword
- stagname 'h1' shtmltag tresword
- stagname 'h2' shtmltag tresword
- stagname 'h3' shtmltag tresword
- stagname 'h4' shtmltag tresword
- stagname 'h5' shtmltag tresword
- stagname 'h6' shtmltag tresword
- stagname 'head' shtmltag tresword
- stagname 'hr' shtmltag tresword
- stagname 'html' shtmltag tresword
- stagname 'i' shtmltag tresword
- stagname 'iframe' shtmltag tresword
- stagname 'img' shtmltag tresword
- stagname 'input' shtmltag tresword
- stagname 'ins' shtmltag tresword
- stagname 'isindex' shtmltag tresword
- stagname 'kbd' shtmltag tresword
- stagname 'label' shtmltag tresword
- stagname 'legend' shtmltag tresword
- stagname 'li' shtmltag tresword
- stagname 'link' shtmltag tresword
- stagname 'map' shtmltag tresword
- stagname 'menu' shtmltag tresword
- stagname 'meta' shtmltag tresword
- stagname 'noframes' shtmltag tresword
- stagname 'noscript' shtmltag tresword
- stagname 'object' shtmltag tresword
- stagname 'ol' shtmltag tresword
- stagname 'optgroup' shtmltag tresword
- stagname 'option' shtmltag tresword
- stagname 'p' shtmltag tresword
- stagname 'param' shtmltag tresword
- stagname 'pre' shtmltag tresword
- stagname 'q' shtmltag tresword
- stagname 's' shtmltag tresword
- stagname 'samp' shtmltag tresword
- stagname 'script' shtmltag tresword
- stagname 'select' shtmltag tresword
- stagname 'small' shtmltag tresword
- stagname 'span' shtmltag tresword
- stagname 'strike' shtmltag tresword
- stagname 'strong' shtmltag tresword
- stagname 'style' shtmltag tresword
- stagname 'sub' shtmltag tresword
- stagname 'sup' shtmltag tresword
- stagname 'table' shtmltag tresword
- stagname 'tbody' shtmltag tresword
- stagname 'td' shtmltag tresword
- stagname 'textarea' shtmltag tresword
- stagname 'tfoot' shtmltag tresword
- stagname 'th' shtmltag tresword
- stagname 'thead' shtmltag tresword
- stagname 'title' shtmltag tresword
- stagname 'tr' shtmltag tresword
- stagname 'tt' shtmltag tresword
- stagname 'u' shtmltag tresword
- stagname 'ul' shtmltag tresword
- stagname 'var' shtmltag tresword
- //HTM@@@
-
- // Reswords - entities
- snormal ‘ snormal tentity
- snormal ’ snormal tentity
- snormal ‚ snormal tentity
- snormal “ snormal tentity
- snormal ” snormal tentity
- snormal „ snormal tentity
- snormal † snormal tentity
- snormal ‡ snormal tentity
- snormal ‰ snormal tentity
- snormal ‹ snormal tentity
- snormal › snormal tentity
- snormal ♠ snormal tentity
- snormal ♣ snormal tentity
- snormal ♥ snormal tentity
- snormal ♦ snormal tentity
- snormal ‾ snormal tentity
- snormal ← snormal tentity
- snormal ↑ snormal tentity
- snormal → snormal tentity
- snormal ↓ snormal tentity
- snormal ™ snormal tentity
- snormal " snormal tentity
- snormal & snormal tentity
- snormal ⁄ snormal tentity
- snormal < snormal tentity
- snormal – snormal tentity
- snormal — snormal tentity
- snormal snormal tentity
- snormal ¡ snormal tentity
- snormal ¢ snormal tentity
- snormal £ snormal tentity
- snormal ¤ snormal tentity
- snormal ¥ snormal tentity
- snormal ¦ snormal tentity
- snormal &brkbar; snormal tentity
- snormal § snormal tentity
- snormal ¨ snormal tentity
- snormal ¨ snormal tentity
- snormal © snormal tentity
- snormal ª snormal tentity
- snormal « snormal tentity
- snormal ¬ snormal tentity
- snormal snormal tentity
- snormal ® snormal tentity
- snormal ¯ snormal tentity
- snormal &hibar; snormal tentity
- snormal ° snormal tentity
- snormal ± snormal tentity
- snormal ² snormal tentity
- snormal ³ snormal tentity
- snormal ´ snormal tentity
- snormal µ snormal tentity
- snormal ¶ snormal tentity
- snormal · snormal tentity
- snormal ¸ snormal tentity
- snormal ¹ snormal tentity
- snormal º snormal tentity
- snormal » snormal tentity
- snormal ¼ snormal tentity
- snormal ½ snormal tentity
- snormal ¾ snormal tentity
- snormal ¿ snormal tentity
- snormal À snormal tentity
- snormal Á snormal tentity
- snormal  snormal tentity
- snormal à snormal tentity
- snormal Ä snormal tentity
- snormal Å snormal tentity
- snormal Æ snormal tentity
- snormal Ç snormal tentity
- snormal È snormal tentity
- snormal É snormal tentity
- snormal Ê snormal tentity
- snormal Ë snormal tentity
- snormal Ì snormal tentity
- snormal Í snormal tentity
- snormal Î snormal tentity
- snormal Ï snormal tentity
- snormal Ð snormal tentity
- snormal Ñ snormal tentity
- snormal Ò snormal tentity
- snormal Ó snormal tentity
- snormal Ô snormal tentity
- snormal Õ snormal tentity
- snormal Ö snormal tentity
- snormal × snormal tentity
- snormal Ø snormal tentity
- snormal Ù snormal tentity
- snormal Ú snormal tentity
- snormal Û snormal tentity
- snormal Ü snormal tentity
- snormal Ý snormal tentity
- snormal Þ snormal tentity
- snormal ß snormal tentity
- snormal à snormal tentity
- snormal á snormal tentity
- snormal â snormal tentity
- snormal ã snormal tentity
- snormal ä snormal tentity
- snormal å snormal tentity
- snormal æ snormal tentity
- snormal ç snormal tentity
- snormal è snormal tentity
- snormal é snormal tentity
- snormal ê snormal tentity
- snormal ë snormal tentity
- snormal ì snormal tentity
- snormal í snormal tentity
- snormal î snormal tentity
- snormal ï snormal tentity
- snormal ð snormal tentity
- snormal ñ snormal tentity
- snormal ò snormal tentity
- snormal ó snormal tentity
- snormal ô snormal tentity
- snormal õ snormal tentity
- snormal ö snormal tentity
- snormal ÷ snormal tentity
- snormal ø snormal tentity
- snormal ù snormal tentity
- snormal ú snormal tentity
- snormal û snormal tentity
- snormal ü snormal tentity
- snormal ý snormal tentity
- snormal þ snormal tentity
- snormal ÿ snormal tentity
- snormal > snormal tentity
- snormal € snormal tentity
- snormal … snormal tentity
- snormal &\#[0-9]*; snormal tentity
-